#!/bin/bash
#
# Este script permite comprobar si funciona correctamente 
# la resolucion de las distintas zonas del dns...
#
# Recibe un argumento:
#  <ges|doc|wifi|inv-priv1|inv-priv2|inv-ges|inv-doc1|inv-doc2|inv-doc3>
#
# Devuelve: [OK] | [ERROR]
#

 # Obtener la ruta absoluta del script
 LSOF=$(lsof -p $$ | grep -E "/"$(basename $0)"$")
 MY_PATH=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
 MY_ROOT=$(dirname $MY_PATH)

case "$1" in
   ges)
      consulta="pd.gestion.educarm.net"
      server="pd-ges"
      tipo="directa"
      ;;
   doc)
      consulta="pd.docencia.educarm.net"
      server="pd-doc"
      tipo="directa"
      ;;
   wifi)
      consulta="pd.wifi.educarm.net"
      server="pd-wifi"
      tipo="directa"
      ;;
   inv-priv1)
      consulta="192.168.129.254"
      server="pd-doc"
      tipo="inversa"
      ;;
   inv-priv2)
      consulta="192.168.131.254"
      server="pd-wifi"
      tipo="inversa"
      ;;
   inv-ges)
      consulta=$( $MY_ROOT/getIpZone.sh ges 2>/dev/null )
      server="pd-ges"
      tipo="inversa"
      ;;
   inv-doc1)
      consulta=$( $MY_ROOT/getIpZone.sh doc1 2>/dev/null )
      server="pd-doc"
      tipo="inversa"
      ;;
   inv-doc2)
      consulta=$( $MY_ROOT/getIpZone.sh doc2 2>/dev/null )
      server="pd-doc"
      tipo="inversa"
      ;;
   inv-doc3)
      consulta=$( $MY_ROOT/getIpZone.sh doc3 2>/dev/null )
      server="pd-doc"
      tipo="inversa"
      ;;
   *)
      echo "ERROR: No se conoce el argumento <$1>"
      exit 2
      ;;
esac
 
if [ "directa" = "$tipo" ]
then
   if nslookup $consulta $server | grep 'Name:' -A1 | grep -q 'Address'
   then
      echo -n "[OK]"
      exit 0
   fi
elif [ "inversa" = "$tipo" ]
then
   if nslookup $consulta $server | grep -q 'name = ' 
   then
      echo -n "[OK]"
      exit 0
   fi
fi

echo -n "[ERROR]"
exit 1
fi


